﻿using System;

namespace Itau.IM.Common.Interface
{
    /// <summary>
    /// Interface das classes de log da aplicação
    /// </summary>
    public interface ILog
    {
        /// <summary>
        /// Método responsável por inicializar o log da aplicação
        /// </summary>
        void BeginLog();

        /// <summary>
        /// Método responsável por inserir uma informação no log da aplicação
        /// </summary>
        /// <param name="message_">Mensagem informativa</param>
        void LogInfo(string message_);

        /// <summary>
        /// Método responsável por inserir uma informação no log da aplicação
        /// </summary>
        /// <param name="message_">Mensagem informativa</param>
        /// <param name="arguments_">Argumetos da mensagem</param>
        void LogInfo(string message_, params object[] arguments_);

        /// <summary>
        /// Método responsável por registrar um erro no log da aplicação
        /// </summary>
        /// <param name="exception_">Objeto de exceção</param>
        void LogError(Exception exception_);

        /// <summary>
        /// Método responsável por finalizar o log da aplicação
        /// </summary>
        void FinishLog();
    }
}